<template>
	<view class="zzc_mol" v-if="isRecording"></view>
</template>

<script>
export default {
	data() {
		return {
			isRecording: false,
			handler: () => {
				this.isRecording = true;
				uni.showModal({
					content: '该页面不允许截屏',
					showCancel: false,
					confirmText: '确定',
					success: () => {
						this.isRecording = false;
					}
				});
			}
		};
	},
	created() {
		this.screenInit();
	},
	destroyed() {
		//#ifdef MP-TOUTIAO
		tt.offUserCaptureScreen(this.handler)
		tt.enableUserScreenRecord()
		//#endif
	},
	onUnload() {
		this.AllowScreenshots();
	},
	methods: {
		screenInit() {
			let _this = this;
			// #ifdef H5
			uni.showToast({
				title: '请在APP或者小程序环境下操作',
				icon: 'error'
			});
			// #endif
			// #ifndef H5
			uni.getSystemInfo({
				success: function (e) {
					// #ifdef MP-WEIXIN
					if (e.platform == 'android') {
						//微信小程序在安卓手机上 禁止截屏/录屏(注意：禁止后录屏动作还是会进行，但录屏后的视频是黑屏的)
						wx.setVisualEffectOnCapture({
							visualEffect: 'hidden', //传入 hidden 则表示在截屏/录屏时隐藏屏幕
							success: (res) => {
								// uni.showModal({
								// 	content: "该页面不允许录屏",
								// 	showCancel: false,
								// 	confirmText: "确定"
								// })
								console.log(res);
							},
							fail: (err) => {
								console.log(err);
							},
							complete: (res) => {
								console.log(res);
							}
						});
					} else {
						//微信小程序在IOS手机上，注意：目前微信小程序在ios上也只能通过监听录屏状态，然后通过添加view层来进行阻止，截屏暂时无法实现
						//监听用户录屏事件
						wx.onScreenRecordingStateChanged(function (res) {
							if (res.state == 'start') {
								uni.showModal({
									content: '该页面不允许录屏',
									showCancel: false,
									confirmText: '确定'
								});
								_this.isRecording = true;
							} else {
								_this.isRecording = false;
							}
						});
						//查询用户是否在录屏
						wx.getScreenRecordingState({
							success: (res) => {
								if (res.state == 'on') {
									_this.isRecording = true;
									uni.showModal({
										content: '该页面不允许录屏',
										showCancel: false,
										confirmText: '确定'
									});
								} else if (res.state == 'off') {
									_this.isRecording = false;
								}
							},
							fail: (err) => {
								_this.isRecording = false;
							}
						});
					}
					// #endif
					//#ifdef MP-TOUTIAO
					if (e.platform == 'android') {
						// 抖音小程序在android手机上禁止截屏
						tt.onUserCaptureScreen(_this.handler);
						// 抖音小程序在android手机上禁止录屏
						tt.disableUserScreenRecord({
							success(res) {
								//禁止录屏成功
							},
							fail(res) {}
						});
					} else {
						// 抖音小程序在IOS手机上禁止截屏
						tt.onUserCaptureScreen(_this.handler);
						// 抖音小程序在IOS手机上禁止录屏
						tt.disableUserScreenRecord({
							success(res) {
								//禁止录屏成功
							},
							fail(res) {}
						});
					}
					// #endif
				}
			});
			// #endif
		},
		//安卓端禁止截屏
		NoscreenCapture() {
			let osname = plus.os.name;
			if (osname == 'Android') {
				var activity = plus.android.runtimeMainActivity();
				plus.android.invoke(plus.android.invoke(activity, 'getWindow'), 'addFlags', 0x00002000);
			}
		},
		//安卓端允许截屏
		AllowScreenshots() {
			let osname = plus.os.name;
			if (osname == 'Android') {
				var activity = plus.android.runtimeMainActivity();
				plus.android.invoke(plus.android.invoke(activity, 'getWindow'), 'clearFlags', 0x00002000);
			}
		}
	}
};
</script>

<style>
.zzc_mol {
	background: #000;
	width: 100%;
	height: 100%;
	position: fixed;
	z-index: 99999;
	top: 0;
	left: 0;
}
</style>
